package DOM;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;

import org.apache.commons.io.FileUtils;

public class Utils {
	
	public static String[] sliptText(String text){
		return text.split("[។៕]");
	}
	
	public static int countPhrase(String text){
		return sliptText(text).length-1;
	}
	
	public static int countWords(String text){
		return text.split(" ").length;
	}
	
	public static String khmerTextFilter(String phrase){
		return phrase.replaceAll("[^ក-៹᧠-᧿ ]", ""); // the rang of khmer unicode
	}
	
	public static String AuthorFilter(String str){
		String result = str;
		String[] regs = {"៖", "ដោយ", "ដោយ *៖"};
		String[] tmp;
		for (String r : regs) {
			tmp = result.split(r);
			result = (tmp.length>1)?tmp[1]:tmp[0];
		}
		
		tmp = result.split(",");
		result = tmp[0];
		
		return result.trim();
	}
	
	public static void changeFilesName(String path){
		File file = new File(path);
		int i = 1;
		for (File f : file.listFiles()) {
			String fname = f.getName();
			fname = fname.replaceAll("index.", "index ("+i+").");
			fname = fname.replaceAll("html_p.*", "html");
			try {
				FileUtils.copyFile(f, new File(path+"/"+fname));
			} catch (IOException e) {
				e.printStackTrace();
			}
			i++;
		}
	}
	
	public static int countfile(String path){
		File file = new File(path);
		return file.listFiles().length;
	}
	
	public static void appendFile(File file, String text){
		try {
			FileOutputStream out = new FileOutputStream(file, true);
			out.write(text.getBytes());
			out.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void appendFile(String path, String text){
		appendFile(new File(path), text);
	}
	
	public static void writeCate2files(File file, String category){
		if(file.isFile()){
			appendFile(file, category);
		}else if(file.isDirectory()){
			for (File f : file.listFiles()) {
				writeCate2files(f, category);
			}
		}
	}
	
	public static void writeCate2files(String path, String category){
		writeCate2files(new File(path), category);
	}
	
	/**********************************************/
	public static void flateFile(File files, ArrayList<File> fileA){
		if(files.isDirectory()){
			for (File file : files.listFiles()) {
				if(!file.isDirectory()){
					fileA.add(file);
				}else{
					flateFile(file, fileA);
				}
			}
		}else
			fileA.add(files);
		
	}
	
	public static void flateFile(String path, ArrayList<String> fileA){
		File files = new File(path);
		if(files.isDirectory()){
			for (File file : files.listFiles()) {
				if(!file.isDirectory()){
					fileA.add(file.getAbsolutePath());
				}else{
					flateFile(file.getAbsolutePath(), fileA);
				}
			}
		}else
			fileA.add(files.getAbsolutePath());
		
	}
	
	public static String filterContent(String str){
		return khmerTextFilter(str.replaceAll(" +", " ").replaceAll("​", ""));
	}
	
	public static void main(String [] args){
//		System.out.println(khmerTextFilter("អ្នកជំនាញ᧥ខាងការគ្រប់គ្រងធនធនធម្មជាតិបានប្រាប់វីអូអេផ្នែកខេមរៈភាសា តាមរយៈការសន្ទនាតាមទូរស័ព្ទ និងដោយផ្ទាល់ថា ធនធានធម្មជាតិនៅក្នុង ប្រទេសកំពុងអភិវឌ្ឍទាំងឡាយនៅជុំវិញពិភពលោកត្រូវបានកេងយកផល ប្រយោជន៍ដោយពួកឥស្សរជននយោបាយ និងសេដ្ឋកិច្ច ។យោងតាមសំដីរបស់អ្នកជំនាញ ខណៈដែលឥស្សរជននយោបាយ និង សេដ្ឋ កិច្ចនៅក្នុងប្រទេសទាំងនេះជារឿយៗ បានផលចំណេញផ្នែកហិរញ្ញវត្ថុ ប្រជា ពលរដ្ឋទូទៅរាប់លាននាក់មិនបានទទួលកម្រៃអ្វីទាំងអស់។ អ្នកជំនាញឲ្យដឹង ថា ស្ថានភាពនិងថាមពលដែលជំរុញឲ្យកើតមានវិសមភាពក្នុងការចែកផល ប្រយោជន៍នេះ មាននៅគ្រប់កន្លែងក្នុងពិភពលោក ដែលក្នុងនោះរួមមាននៅ ទ្វីបអាហ្រ្វិក អាមេរិកឡាទីន និងអាស៊ី ។"));
//		categoryKSTPDaily();
//		System.out.println(ContentFilter("ខេត្ត​កំពង់​ស្ពឺ ៖ ស្ត្រី​ជា​កម្ម​ករ​ថែ និង​ដាំ​ដំឡូង​ម្នាក់​​នៅ​ក្នុង​ក្រុម​ហ៊ុន MH ស៊ី​ជេ​ ជា​ក្រុម​ហ៊ុន​ដាំ​ដំណាំ​ដំឡូង​មី​ស្ថិត​នៅ​​ជាប់​ផ្លូវ​ជាតិ​លេខ​៤ ក្នុង​​ភូមិ​ទី​៦ ឃុំ​ត្រែង​ត្រយឹង ស្រុក​ភ្នំ​ស្រួច បាន​ស្លាប់​ក្នុង​ថ្លុក​ឈាម​​ នា​ម៉ោង​៩​និង​១០​នាទី​យប់ ថ្ងៃ​ទី​១៥ តុលា នៅ​ក្នុង​បន្ទប់​ដេក​របស់​ខ្លួន​។ ឃាតក​គឺ​​​​ជា​សន្តិ​សុខ​របស់​ក្រុម​ហ៊ុន​​ដែល​ស្រវឹង​ ហើយ​ព្យា​យាម​អូស​ដៃ​នាង​ឱ្យ​​ឡើង​លើ​​គ្រែ​​ដើម្បី​បំពេញ​តណ្ហា​​ដែល​កំពុង​ពុះ​កញ្ជ្រោល​ តែ​នាង​ពុំ​ព្រម​ ព្រោះ​ជា​ពេល​ដែល​«នាង​មក​រដូវ» ក៏​​ស្រាប់​​តែ​សន្តិ​សុខ​​ទុរយស​នោះ បាញ់​ប្រហារ​១​គ្រាប់​ដោយ​កាំភ្លើង​ AK47 ចំ​លើ​សុដន់​ខាង​​ស្តាំ​ បណ្តាល​ឱ្យ​នាង​ដួល​​ស្លាប់​ក្នុង​ថ្លុក​ឈាម ហើយ​​ជន​ដៃ​ដល់​ជា​សន្តិសុខ​​រូប​នោះ​បាន​គេច​ខ្លួន​បាត់។ ហេតុ​ការណ៍​ព្រៃ​ផ្សៃ​នេះ​ត្រូវ​បាន​មន្ត្រី​ប៉ូលិស​ស្រុក​ភ្នំ​ស្រួច​ និង​កង​រាជ​​អាវុធ​ហត្ថ​ស្នាក់​ការ​ឧទ្យាន​ជាតិ​គិរី​រម្យ​ឱ្យ​ដឹង​ថា ស្ត្រី​​រង​គ្រោះ​​ឈ្មោះ​សាយ ម៉ៅ អាយុ​៣៩​ឆ្នាំ មាន​ទី​​លំនៅ​​​ក្នុង​​ភូមិ​ហង្ស​ស្វាយ​ចេក ឃុំ​ចារ​ ​ស្រុក​ព្រៃ​កប្បាស​ ខេត្ត​តា​កែវ។ នាង​បាន​មក​ធ្វើ​ជា​កម្ម​ករ​​ដាំ​ដំឡូង​ឱ្យ​ក្រុម​ហ៊ុន​ស៊ីជេ​នេះ​អស់​រយៈ​​ពេល​ជា​​យូរ​មក​ហើយ។ ឯ​កន្លែង​ស្នាក់​នៅ​ត្រូវ​បាន​ម្ចាស់​​ក្រុម​ហ៊ុន​​​ធ្វើ​ឱ្យ​ស្នាក់​​នៅ​ក្នុង​កសិ​ដ្ឋាន​​ដោយ​មាន​ស្ត្រី​ជា​ច្រើន​នាក់​ទៀត​ស្នាក់​នៅ​​ក្បែរៗ​គ្នា​។ សមត្ថ​កិច្ច​បាន​ប្រាប់​ទៀត​ថា នៅ​ម៉ោង​៩​និង​១០​នាទី​​យប់​ គេ​ឮ​ស្នូរ​ផ្ទុះ​អាវុធ​នៅ​ក្នុង​បន្ទប់​​របស់​នាង​សាយ ម៉ៅ ។ អ្នក​នៅ​ក្បែរ​បន្ទប់​រួម​ទាំង​បណ្តា​អ្នក​នៅ​ក្នុង​កសិ​ដ្ឋាន​មាន​ការ​ភ្ញាក់​​ផ្អើល​ និង​រត់​មក​មើល​ទើប​ដឹង​ថា នាង​សាយ ម៉ៅ ត្រូវគេ​បាញ់​មួយ​​គ្រាប់​ចំ​​សុដន់​ខាង​ស្តាំ​បណ្តាល​ឱ្យ​ស្លាប់​ក្នុង​ថ្លុក​ឈាម។ មន្ត្រី​ជំនាញ​ព្រហ្ម​ទណ្ឌ​ស្រុក​ផ្នែក​ពិនិត្យ និង​វិភាគ​​បាន​ឱ្យ​ដឹង​ថា ​អ្នក​បាញ់​ប្រហារ​នាង​ជា​សន្តិ​សុខ​របស់​ក្រុម​ហ៊ុន MH ស៊ីជេ​​នេះ។ ក្រោយ​ពី​បាញ់​​នាង​ស្លាប់​​ឃាតក​បាន​​រត់​​គេច​ខ្លួន​ទាំង​យប់​បាត់​​​ស្រមោល​។ ប្រភព​ដដែល​បាន​​ឱ្យ​ដឹង​ទៀត​ថា នាង​សាយ ម៉ៅ ​ត្រូវ​ឃាតក​បាញ់​សំលាប់​ដោយ​សារ​មិន​យល់​ព្រម​តាម​ការ​​​​បង្ខិត​បង្ខំ​​ឱ្យ​នាង​ចូល​បន្ទប់​​ដើម្បី​​រួម​រ័ក​។ ​ឯ​សន្តិ​សុខ​​​ជា​ឃាត​ក​ត្រូវ​​គេ​ស្គាល់​​ឈ្មោះ​កែវ រ៉ា ភេទ​ប្រុស​ អាយុ​៣៦​ឆ្នាំ នៅ​ភូមិ​ចង្កៀង​ ឃុំ​​ទទុង ស្រុក​ដង​ទង់ ខេត្ត​កំពត។ សមត្ថ​កិច្ច​បាន​រក​ឃើញ​​សំបក​គ្រាប់​កាំភ្លើង AK47 មួយ​​​​បន្សល់​​ទុក​នៅ​កន្លែង​កើត​ហេតុ។ កម្ម​ករ​នៅ​ក្នុង​ក្រុម​ហ៊ុន​និយាយ​ថា កែវ រ៉ា ផឹក​ស្រវឹង​ហើយ​សុំ​នាង​រួម​រ័ក​ តែ​នាង​ពុំ​ព្រម​ដោយ​នាង​មក​​រដូវ​​​ ក៏​ត្រូវ​បាញ់​សំលាប់​បែប​នេះ។ តាម​ព័ត៌​មាន​បាន​ឱ្យ​​ដឹង​ថា ជន​ជា​ឃាតក​តែង​តែ​តាម​ប្រមាញ់​​នារី​កម្ម​ករ​ណា​ដែល​ខ្លួន​​ពេញ​ចិត្ត តែ​​ចំពោះ​​រូប​នាង​គឺ​មិន​ព្រម​ស្ម័គ្រ​ ​ទើប​ជន​នេះ​បាញ់​សំលាប់​។ សមត្ថ​កិច្ច​បាន​ឱ្យ​ដឹង​ថា សំរាប់​ជន​ល្មើស​កំពុង​ត្រូវ​បាន​តាម​ចាប់​ខ្លួន៕  "));
//		System.out.println(AuthorFilter("ដោយ ៖ អប្សរា"));
//		changeFilesName("D:/drop box/Dropbox/i5/semester 2/intern at school/content article/www.camnews.org");
//		System.setProperty("D:/drop box/Dropbox/i5/semester 2/intern at school/word_segmentation/", "D:/drop box/Dropbox/i5/semester 2/intern at school/word_segmentation/");
//		Properties p = new Properties(System.getProperties());
//		p.setProperty("python.home", "D:/drop box/Dropbox/i5/semester 2/intern at school/word_segmentation");
//		p.setProperty("python.path", "D:/drop box/Dropbox/i5/semester 2/intern at school/word_segmentation");
//		System.out.println(System.getProperties());
//		System.setProperty("user.dir", "D:/drop box/Dropbox/i5/semester 2/intern at school/word_segmentation");
//		p.setProperty("python.home", "C:/Python27");
//		System.setProperty("python.path", "C:/Python27");
//		PythonInterpreter.initialize(System.getProperties(), p, new String[0]);
//		PythonInterpreter in = new PythonInterpreter();
//		in.execfile("word_seg.py");
//		in.execfile("count_word.py");
		
//		System.out.println("hourkiand \\ dfadfsdf".replaceAll("/", ""));
		System.out.println(khmerTextFilter("www.fpmonline.net ។ សូមអរគុណ  "));
	}
	
}

